🍳 قبل از هر چیزی، یه مثال ساده:
فرض کن یه رستوران داری با چند تا آشپز (همون دیسکهای سخت). هر کدوم از روشهای RAID، یه جور چیدمان آشپزا و پخت غذاست. بذار ببینیم هرکدوم چطور کار میکنن!
▍ RAID 0 = Striping (نواربندی) — همه با هم!
📀 مثل یه تیم آشپزی که همه با هم یه غذا درست میکنن!
- هر آشپز یه تیکه از غذا رو میپزه.
- مزیت: غذا خیلی زودتر حاضر میشه (سرعت بالا).
- عیب: اگه یه آشپز مریض بشه، کل غذا میپره! (هیچ تحمل خطایی نداره).
- حداقل دیسک: ۲ عدد
- کاربرد: جاهایی که سرعت مهمه، مثل ذخیره موقت فیلمهای در حال ادیت.
💡 یادت باشه: RAID 0 = سرعت بالا، ولی هیچ امنیتی نداره!
▍ RAID 1 = Mirroring (آینهسازی) — دو تا آشپز، یه غذا!
📀 مثل این که دو تا آشپز دقیقاً یه غذا رو درست کنن!
- هر دو آشپز دقیقاً همون غذا رو میپزن (دادهها روی دو دیسک کپی میشن).
- مزیت: اگه یه آشپز مریض بشه، آشپز دوم هنوز غذا رو داره (تحمل خطا داره).
- عیب: فضای رستوران دوبرابر میشه (نصف فضا هدر میره).
- حداقل دیسک: ۲ عدد
- کاربرد: سرورهایی که اطلاعاتشون خیلی مهمه، مثل بانکها.
💡 یادت باشه: RAID 1 = امنیت بالا، ولی فضا نصف میشه!
▍ RAID 5 = Striping + Parity — یه آشپز کمکی!
📀 مثل این که همه آشپزا غذا درست میکنن، ولی یه نسخه پشتیبان کوچک از همه غذاها دارن!
- دادهها بین دیسکها تقسیم میشن و یه اطلاعات اضافی (Parity) هم برای بازیابی ذخیره میشه.
- مزیت: اگه یه آشپز مریض بشه، بقیه آشپزا با کمک اون نسخه پشتیبان، غذای گمشده رو دوباره درست میکنن.
- عیب: فضای یه دیسک برای پشتیبان هدر میره.
- حداقل دیسک: ۳ عدد
- تحمل خرابی: ۱ دیسک
- کاربرد: بیشتر سرورها که هم سرعت میخوان هم امنیت.
💡 یادت باشه: RAID 5 = تعادل بین سرعت و امنیت!
▍ RAID 6 = Striping + Double Parity — دو تا آشپز کمکی!
📀 مثل RAID 5، ولی با دو تا نسخه پشتیبان!
- مثل RAID 5، ولی با دو تا Parity (پشتیبان).
- مزیت: اگه دو تا آشپز مریض بشن، باز هم غذا درست میشه.
- عیب: فضای بیشتری برای پشتیبان مصرف میشه.
- حداقل دیسک: ۴ عدد
- تحمل خرابی: ۲ دیسک
- کاربرد: سیستمهای حیاتی که حتی خرابی دو دیسک رو هم تحمل میکنن.
💡 یادت باشه: RAID 6 = امنیت بیشتر، ولی فضای بیشتری هدر میره!
▍ RAID 10 = RAID 1 + RAID 0 — بهترین!
📀 هم سرعت داره، هم امنیت!
- اول یه گروه از آشپزا رو آینه میکنی (RAID 1).
- بعد چند تا از این گروهها رو نوار میکنی (RAID 0).
- مزیت: هم غذا زود حاضر میشه، هم اگه یه آشپز مریض بشه، مشکل نداره.
- عیب: به حداقل ۴ دیسک نیاز داری و نصف فضا هدر میره.
- حداقل دیسک: ۴ عدد
- تحمل خرابی: تا ۲ دیسک (به شرطی که از یه گروه نباشن)
- کاربرد: سرورهای گرونقیمت که همه چی براشون مهمه (مثل دیتابیسهای بزرگ).
💡 یادت باشه: RAID 10 = بهترین گزینه، ولی گرونترین!
▍ جدول خلاصه برای یادآوری سریع
| نوع RAID |
اسم دیگه |
حداقل دیسک |
تحمل خرابی |
سرعت |
فضای مفید |
| RAID 0 |
Striping |
۲ |
❌ هیچی |
🚀 خیلی بالا |
۱۰۰٪ |
| RAID 1 |
Mirroring |
۲ |
✅ ۱ دیسک |
متوسط |
۵۰٪ |
| RAID 5 |
Parity |
۳ |
✅ ۱ دیسک |
بالا |
۶۶٪ تا ۹۰٪ |
| RAID 6 |
Double Parity |
۴ |
✅ ۲ دیسک |
متوسط |
۵۰٪ تا ۸۰٪ |
| RAID 10 |
Mirror+Stripe |
۴ |
✅ ۲ دیسک |
🚀 خیلی بالا |
۵۰٪ |
🧪 یه مثال عددی واسه تفهیم:
فرض کن ۳ تا دیسک ۱۰۰ گیگی داری:
- تو RAID 0: میشه ۳۰۰ گیگ با سرعت بالا، ولی اگه یه دیسک خراب بشه، همه چی میره.
- تو RAID 5: میشه ۲۰۰ گیگ (چون ۱۰۰ گیگ برای پشتیبان)، ولی اگه یه دیسک خراب بشه، دادههات میمونه.
▍ نصب ابزار mdadm
📦 دبیان (Debian/Kali):
┌──(ya3in㉿kali)-[~]
└─$ sudo apt update
└─$ sudo apt install mdadm -y
📦 رد هت (Red Hat/AlmaLinux):
┌──(user㉿almalinux)-[~]
└─$ sudo dnf clean all
└─$ sudo dnf install mdadm -y
▍ ساخت RAID 0 با دو دیسک
فرض کن دو تا پارتیشن داری: /dev/sdb1 و /dev/sdc1
┌──(ya3in㉿kali)-[~]
└─$ sudo mdadm --create /dev/md0 --level=stripe --raid-devices=2 /dev/sd[b-c]1
توضیح: این دستور یه آرایه RAID 0 با اسم /dev/md0 از دو دیسک /dev/sdb1 و /dev/sdc1 میسازه.
💡 روش کوتاهتر:
┌──(ya3in㉿kali)-[~]
└─$ sudo mdadm -C /dev/md0 -l raid0 -n 2 /dev/sd[b-c]1
-C = Create (ایجاد)
-l raid0 = Level = RAID 0
-n 2 = Number of devices = 2
▍ دیدن وضعیت RAID
┌──(ya3in㉿kali)-[~]
└─$ cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdc1[1] sdb1[0]
20970496 blocks super 1.2 512k chunks
unused devices:
توضیح: این خروجی نشون میده که RAID 0 با اسم md0 فعال هست و از دو دیسک sdb1 و sdc1 ساخته شده.
▍ فرمت و Mount کردن
┌──(ya3in㉿kali)-[~]
└─$ sudo mkfs.ext4 /dev/md0
└─$ sudo mkdir /mnt/raid0
└─$ sudo mount /dev/md0 /mnt/raid0
▍ پاک کردن RAID
⚠️ توجه!
این کار همه دادههای روی RAID رو پاک میکنه. اگه اطلاعات مهم داری، اول پشتیبان بگیر.
┌──(ya3in㉿kali)-[~]
└─$ sudo umount /mnt/raid0
└─$ sudo mdadm --stop /dev/md0
└─$ sudo mdadm --zero-superblock /dev/sdb1
└─$ sudo mdadm --zero-superblock /dev/sdc1
✅ تمرین برای تثبیت:
- با استفاده از Loop Deviceها، دو دیسک مجازی ۵۰ مگابایتی بساز.
- روی آنها پارتیشن ایجاد کن.
- با
mdadm یک RAID 0 بساز.
- فرمتش کن، Mount کن و یه فایل تست توش ذخیره کن.
- بعد RAID رو پاک کن.